package collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class SortPoint {
    public static void main(String[] args) {
        List<Point> list=new ArrayList<>();
        list.add(new Point(3,5));
        list.add(new Point(4,54));
        list.add(new Point(34,3));
        list.add(new Point(12,8));
        list.add(new Point(2,43));
        list.add(new Point(3,7));
        System.out.println("原始数据:"+list);

        Collections.sort(list, new Comparator<Point>() {
            @Override
            public int compare(Point o1, Point o2) {
                return o1.getX()-o2.getX();
            }
        });
        System.out.println(list);

        //============================================
        //jdk1.8时List集合自身提供了sort方法进行排序,方法中只需要传入比较器
        list.sort(new Comparator<Point>() {
            @Override
            public int compare(Point o1, Point o2) {
                return o1.getX()-o2.getX();
            }
        });


        Collections.sort(list,(o1,o2)->{
            int len1=o1.getX()*o1.getX()+o1.getY()*o1.getY();
            int len2=o2.getX()*o2.getX()+o2.getY()*o2.getY();
            return len1-len2;
        });
    }
}
